SPSS – 通过语法重新排列变量
作者:Ruben Geert van den Berg,发表于 SPSS Blog
在 SPSS 中工作时,重新排列变量是很常见的操作。本教程将展示如何正确地进行此操作。我们鼓励您通过下载并打开 hotel_evaluation.sav 来亲自尝试这些示例,该数据集的截图如下所示。
SPSS 重新排列变量示例 1
在 SPSS 中重新排列变量最常见的方法是运行 ADD FILES 命令。在解释其工作原理之前,我们首先要展示它确实有效。假设我们想要交换变量 fname
和 sex
。运行以下 syntax(语法) 即可实现:
***Reorder variables example 1.
**
add files file *
/keep id sex fname all.
execute.
结果
工作原理?
请记住,ADD FILES
合并了包含不同个案但变量相似的数据源。请注意,在 SPSS 语法中,星号 *
指的是活动数据集(通常是 SPSS 中打开的唯一数据)。
现在,如果我们将此指定为唯一的数据源,则它不会与任何内容合并。这意味着运行 add files file *.
实际上什么都不做。但是,如果我们添加一个 /keep
子命令,告诉 SPSS 保留(而不是删除)哪些变量 以及以什么顺序 保留,则此命令变得有用。
在我们的第一个示例中,我们决定保留 id sex fname
。请注意,原始顺序是 id fname sex
。
最后,all
是一个特殊的关键词,指的是所有其他变量,并保持它们原有的顺序。省略 all
会从我们的数据中删除这些变量。所有这些操作的最终结果是,我们基本上什么都不做,只是以与之前不同的顺序保留所有变量,这正是我们想要的。
SPSS 重新排列变量示例 2
现在,我们只是在数据中交换了两个变量。但是,如果要移动整个变量块呢?例如,假设我们想要将变量 q1
到 q5
放在数据中的 fname
之后。如果我们使用 SPSS 的 TO
关键词,这根本不是问题。以下语法展示了如何轻松完成此操作。
***Move entire block of variables forwards within file.
**
add files file */keep id to fname q1 to q5 all.
execute.
结果
SPSS 重新排列变量示例 3
回顾一下:如果我们在 SPSS 中打开了一些数据,我们可以通过使用带有 keep
子命令的 ADD FILES 命令轻松地重新排列变量。
这是完成此操作的唯一方法吗?不。如果我们完成了数据集的处理,我们可以在 save
命令中使用完全相同的 keep
子命令,如下面的第一个示例所示。这实际上没有必要,但它可以节省少量的语法和处理时间。
为了完整起见,如果我们提前知道数据中存在哪些变量,我们也可以在使用 get
命令打开数据文件时重新排列它们。
SPSS 重新排列变量语法示例
***1. Reorder variables when saving data file.
**
save outfile '10_all_data_prepared.sav'
/keep q1 to q5 all.
***2. Reorder variables when opening data file.
**
get file 'hotel_evaluation.sav'
/keep q1 to q5 all.
SPSS SORT VARIABLES
我们还需要提到一件事:SPSS(从 16 版开始)还具有 SORT VARIABLES
命令。这样,您可以根据变量名称、variable type(变量类型)、variable label(变量标签)、format(格式) 或其他几个属性对变量进行排序。
我们显然需要在这里提到此命令。但是,我们在实践中很少使用它。原因是上述排序选项几乎从不对应于我们想要的变量顺序。无论如何,那些想快速尝试一下的人可以运行类似 sort variables by name.
的命令。
SPSS 重新排列变量 - 最终说明
在某些情况下,您可能需要以比本教程涵盖的更复杂的结构化方式对变量进行排序。一个例子是根据变量名称中的下标对(许多)变量进行排序。有效完成此类案例的方法是在 SPSS 中使用 Python。